|
RAIS
3.2
|
00001 00028 using System; 00029 using System.Data; 00030 using System.Configuration; 00031 using System.Collections; 00032 using System.Collections.Generic; 00033 using System.Web; 00034 using System.Web.Security; 00035 using System.Web.UI; 00036 using System.Web.UI.WebControls; 00037 using System.Web.UI.WebControls.WebParts; 00038 using System.Web.UI.HtmlControls; 00039 00040 using RAIS; 00041 using RAIS.Common.UserManagement; 00042 using RAIS.Common.DynamicMaskManagement; 00043 //using RAIS.ApplicationLogicLayer; 00044 00045 using DataRoles = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.DataRole>; 00046 using DataRoleAttributes = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.DataRoleAttribute>; 00047 using Regions = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.Region>; 00048 using Districts = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.District>; 00049 using Facilities = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.Facility>; 00050 00051 namespace RAIS.UI.SpecificMasks 00052 { 00056 public partial class EditDataRoles_New_Update1 : System.Web.UI.Page 00057 { 00061 enum EditDataRoles_PageMode 00062 { 00063 viewRoles, 00064 addRole, 00065 editRole 00066 }; 00067 //********************************************************************* 00068 #region Event handlers 00069 protected void Page_PreLoad(object sender, EventArgs e) 00070 { 00071 RAIS.UI.Common.PageManagement.TrimTextBoxValues(this); 00072 } 00083 protected void Page_Load(object sender, EventArgs e) 00084 { 00085 this.Response.Cache.SetNoStore(); 00086 if (this.CurrentUser == null) 00087 UI.Common.AccessManagement.SignOut(this); 00088 this.LBLresult.Text = string.Empty; 00089 00090 if (!this.IsPostBack) 00091 { 00092 this.BTNdelete.Attributes.Add("onclick", string.Format("javascript: return confirm('{0}');", RAIS.Common.Messages.DELETE_QUESTION_DATA_ROLE.Replace("'", "\\'"))); 00093 this.LBLusernameNoTranslation.Text = this.CurrentUser.Name; 00094 00095 UI.Common.UserManagement.InitializeDataRolesListBox(this.LBdmrolename, this.SavedDataRoleSelection); 00096 00097 this.CurrentEditDataRoles_PageMode = EditDataRoles_PageMode.viewRoles; 00098 00099 UI.Common.PageManagement.InitializePage(this, this.TreeView1); 00100 // this.LBTNmessagebox.Visible = !(this.CurrentUser.FunctionalRole.Type == FunctionRole.FunctionRoleType.Guest); 00101 this.ShowRole(); 00102 } 00103 UI.Common.PageManagement.InitHelpMainMenu(LBTNdefault); 00104 } 00105 protected void Page_Init(object sender, EventArgs e) 00106 { 00107 Common.PageManagement.SetScrolableListBox(LBdmrolename, this, true); 00108 } 00119 protected void LBdmrolename_SelectedIndexChanged(object sender, EventArgs e) 00120 { 00121 this.SavedDataRoleSelection = this.LBdmrolename.SelectedValue; 00122 this.EnableDisableEditDelete(); 00123 this.ShowRole(); 00124 } 00131 protected void BTNadd_Click(object sender, EventArgs e) 00132 { 00133 this.ClearRoleData(); 00134 this.CreateTemporaryRole(); 00135 this.Modified = true; 00136 this.CurrentEditDataRoles_PageMode = EditDataRoles_PageMode.addRole; 00137 } 00145 protected void BTNedit_Click(object sender, EventArgs e) 00146 { 00147 this.Modified = true; 00148 this.CurrentEditDataRoles_PageMode = EditDataRoles_PageMode.editRole; 00149 } 00156 protected void BTNdelete_Click(object sender, EventArgs e) 00157 { 00158 this.DeleteSelectedRole(); 00159 this.EnableDisableEditDelete(); 00160 this.ShowRole(); 00161 } 00169 protected void BTNsave_Click(object sender, EventArgs e) 00170 { 00171 if (this.CurrentEditDataRoles_PageMode == EditDataRoles_PageMode.addRole) 00172 { 00173 this.AddNewRole(); 00174 } 00175 else 00176 { 00177 this.GetDataRoleFromMaskControls(); 00178 this.SaveRole(); 00179 } 00180 this.EnableDisableEditDelete(); 00181 } 00189 protected void BTNdiscard_Click(object sender, EventArgs e) 00190 { 00191 this.ClearRoleData(); 00192 this.ShowRole(); 00193 00194 this.CurrentEditDataRoles_PageMode = EditDataRoles_PageMode.viewRoles; 00195 this.Modified = false; 00196 00197 UI.Common.UserManagement.InitializeDataRolesListBox(this.LBdmrolename, this.SavedDataRoleSelection); 00198 this.EnableDisableControls(); 00199 } 00206 protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) 00207 { 00208 UI.Common.UserManagement.ProcessTreeViewOnRedirect(this.TreeView1); 00209 } 00216 protected void LBTNlogout_Click(object sender, EventArgs e) 00217 { 00218 UI.Common.AccessManagement.SignOut(this); 00219 } 00220 #endregion Event handlers 00221 //********************************************************************* 00222 #region Private helper methods 00223 00229 void ShowRole() 00230 { 00231 if (this.SelectedRole == null) 00232 { 00233 ClearRoleData(); 00234 return; 00235 } 00236 else 00237 { 00238 this.TXTrolename.Text = this.SelectedRole.Name; 00239 // Get protector 00240 Protector protector = 00241 ApplicationLogicLayer.DynamicMaskManagement.GetProtector( 00242 "Data Role" 00243 , this.SelectedRole.ID); 00244 00245 if (protector != null) 00246 { 00247 this.BTNedit.Attributes.Add("onclick", string.Format("javascript: alert('{0}'); return false;", protector.RenameMessage.Replace("'", "\\'"))); 00248 this.BTNdelete.Attributes.Add("onclick", string.Format("javascript: alert('{0}'); return false;", protector.DeleteMessage.Replace("'", "\\'"))); 00249 } 00250 else 00251 { 00252 this.BTNedit.Attributes.Remove("onclick"); 00253 this.BTNdelete.Attributes.Add("onclick", string.Format("javascript: return confirm('{0}');", RAIS.Common.Messages.DELETE_QUESTION_DATA_ROLE.Replace("'", "\\'"))); 00254 } 00255 } 00256 } 00260 void ClearRoleData() 00261 { 00262 this.TXTrolename.Text = string.Empty; 00263 } 00267 private void DeleteSelectedRole() 00268 { 00269 DataRole selectedRole = this.SelectedRole; 00270 00271 if (selectedRole != null) 00272 { 00273 string returnMessage = string.Empty; 00274 bool success = ApplicationLogicLayer.UserManagement.RemoveDataRole(selectedRole, ref returnMessage); 00275 this.Session[RAIS.UI.Common.Constants.DATA_ROLES_TAG] = null; //for resetting 00276 this.SavedDataRoleSelection = (this.LBdmrolename.SelectedIndex == 0) 00277 ? string.Empty 00278 : this.LBdmrolename.Items[this.LBdmrolename.SelectedIndex - 1].Value; 00279 UI.Common.UserManagement.InitializeDataRolesListBox(this.LBdmrolename, this.SavedDataRoleSelection); 00280 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, 00281 returnMessage, 00282 success); 00283 } 00284 } 00288 private void CreateTemporaryRole() 00289 { 00290 DataRole tempRole = new DataRole(); 00291 this.Session[UI.Common.Constants.DATA_ROLE_TEMPORARY_TAG] = tempRole; 00292 } 00297 private bool AddNewRole() 00298 { 00299 string validationMessage = string.Empty; 00300 bool success = this.ValidateNewDataRole(this.TXTrolename.Text, ref validationMessage); 00301 00302 if (success) 00303 { 00304 success = ApplicationLogicLayer.UserManagement.AddDataRole(this.TXTrolename.Text, ref validationMessage); 00305 if (success) 00306 { 00307 DataRole tempRole = this.SelectedRole; 00308 this.Session[RAIS.UI.Common.Constants.DATA_ROLE_TEMPORARY_TAG] = null; 00309 UI.Common.UserManagement.InitializeDataRoles(this); 00310 00311 DataRoles dataRoles = (DataRoles)this.Session[RAIS.UI.Common.Constants.DATA_ROLES_TAG]; 00312 DataRole savedRole = dataRoles[this.TXTrolename.Text]; 00313 00314 foreach (DataRoleAttribute attribute in tempRole.AddedAttributes.Values) 00315 { 00316 success = savedRole.AddAttribute(attribute, ref validationMessage); 00317 if (!success) 00318 break; 00319 } 00320 } 00321 00322 if (success) 00323 { 00324 this.CurrentEditDataRoles_PageMode = EditDataRoles_PageMode.viewRoles; 00325 this.Modified = false; 00326 00327 this.SavedDataRoleSelection = this.TXTrolename.Text; 00328 UI.Common.UserManagement.InitializeDataRolesListBox(this.LBdmrolename, this.SavedDataRoleSelection); 00329 this.EnableDisableControls(); 00330 } 00331 } 00332 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, 00333 validationMessage, 00334 success); 00335 return success; 00336 } 00341 private bool SaveRole() 00342 { 00343 string returnMessage = string.Empty; 00344 bool success = true; 00345 00346 if (!this.Modified) 00347 { 00348 returnMessage = RAIS.Common.Messages.DATA_ROLE_NO_MODIFICATION; 00349 success = false; 00350 } 00351 else 00352 { 00353 success = ApplicationLogicLayer.UserManagement.SaveDataRole(this.SelectedRole, ref returnMessage); 00354 if (success) 00355 { 00356 this.CurrentEditDataRoles_PageMode = EditDataRoles_PageMode.viewRoles; 00357 this.Modified = false; 00358 00359 this.SavedDataRoleSelection = this.TXTrolename.Text; 00360 UI.Common.UserManagement.InitializeDataRolesListBox(this.LBdmrolename, this.SavedDataRoleSelection); 00361 this.EnableDisableControls(); 00362 } 00363 } 00364 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, 00365 returnMessage, 00366 success); 00367 return success; 00368 } 00372 private void GetDataRoleFromMaskControls() 00373 { 00374 if (this.SelectedRole != null) 00375 { 00376 this.SelectedRole.Name = TXTrolename.Text; 00377 } 00378 } 00387 bool ValidateNewDataRole(string roleName, ref string returnMessage) 00388 { 00389 DataRoles funcitonRoles = (DataRoles)this.Session[UI.Common.Constants.DATA_ROLES_TAG]; 00390 if (funcitonRoles.ContainsKey(roleName)) 00391 { 00392 returnMessage = RAIS.Common.Messages.DATA_ROLE_EXISTS; 00393 return false; 00394 } 00395 else 00396 if (roleName.Length == 0) 00397 { 00398 returnMessage = RAIS.Common.Messages.NAME_IS_EMTPY; 00399 return false; 00400 } 00401 else 00402 return true; 00403 } 00407 private void EnableDisableControls() 00408 { 00409 this.LBdmrolename.Enabled = this.CurrentEditDataRoles_PageMode == EditDataRoles_PageMode.viewRoles; 00410 00411 this.LBdma.Enabled = this.CurrentEditDataRoles_PageMode == EditDataRoles_PageMode.viewRoles; 00412 this.BTNadd.Enabled = this.CurrentEditDataRoles_PageMode == EditDataRoles_PageMode.viewRoles; 00413 this.BTNsave.Enabled = this.Modified; 00414 this.BTNdiscard.Enabled = this.CurrentEditDataRoles_PageMode != EditDataRoles_PageMode.viewRoles; 00415 00416 this.EnableDisableEditDelete(); 00417 00418 this.TXTrolename.Enabled = !(this.CurrentEditDataRoles_PageMode == EditDataRoles_PageMode.viewRoles); 00419 00420 UI.Common.UserManagement.EnableCommonControls(this, this.CurrentEditDataRoles_PageMode == EditDataRoles_PageMode.viewRoles); 00421 00422 this.LBLadmin.ForeColor = RAIS.UI.Common.Constants.COLOR_OF_MENU_BAR_TEXT_HIGHLIGHT; 00423 00424 if (this.Modified) 00425 this.BTNdiscard.Attributes.Add("onclick", string.Format("javascript: return confirm('{0}');", RAIS.Common.Messages.DISCARD_QUESTION_ROLE.Replace("'", "\\'"))); 00426 else 00427 this.BTNdiscard.Attributes.Remove("onclick"); 00428 00429 if (this.CurrentEditDataRoles_PageMode == EditDataRoles_PageMode.viewRoles) 00430 this.SetFocus(this.LBdmrolename); 00431 else 00432 this.SetFocus(this.TXTrolename); 00433 } 00437 void EnableDisableEditDelete() 00438 { 00439 this.BTNedit.Enabled = this.CurrentEditDataRoles_PageMode == EditDataRoles_PageMode.viewRoles && this.SelectedRole != null; 00440 this.BTNdelete.Enabled = this.CurrentEditDataRoles_PageMode == EditDataRoles_PageMode.viewRoles && this.SelectedRole != null; 00441 } 00442 #endregion Private helper methods 00443 //********************************************************************* 00444 #region Private helper properties 00445 00448 private DataRole SelectedRole 00449 { 00450 get 00451 { 00452 if (this.Session[RAIS.UI.Common.Constants.DATA_ROLE_TEMPORARY_TAG] != null) 00453 return (DataRole)this.Session[RAIS.UI.Common.Constants.DATA_ROLE_TEMPORARY_TAG]; 00454 else 00455 { 00456 DataRoles dataRoles = (DataRoles)this.Session[RAIS.UI.Common.Constants.DATA_ROLES_TAG]; 00457 if (dataRoles != null && dataRoles.ContainsKey(this.LBdmrolename.SelectedValue)) 00458 return dataRoles[this.LBdmrolename.SelectedValue]; 00459 else 00460 return null; 00461 } 00462 } 00463 } 00467 EditDataRoles_PageMode CurrentEditDataRoles_PageMode 00468 { 00469 get 00470 { 00471 if (this.Session[UI.Common.Constants.DATA_ROLE_EDIT_MODE_TAG] != null) 00472 { 00473 return (EditDataRoles_PageMode)this.Session[UI.Common.Constants.DATA_ROLE_EDIT_MODE_TAG]; 00474 } 00475 else 00476 return EditDataRoles_PageMode.viewRoles; 00477 } 00478 set 00479 { 00480 string message; 00481 switch (value) 00482 { 00483 case EditDataRoles_PageMode.addRole: message = RAIS.UI.Common.Constants.ADDING_NEW_DATA_ROLE; break; 00484 case EditDataRoles_PageMode.editRole: message = RAIS.UI.Common.Constants.EDITTING_EXISTING_DATA_ROLE; break; 00485 00486 default: 00487 this.Session[RAIS.UI.Common.Constants.DATA_ROLE_TEMPORARY_TAG] = null; 00488 message = string.Empty; 00489 break; 00490 } 00491 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, message, true); 00492 this.Session[UI.Common.Constants.DATA_ROLE_EDIT_MODE_TAG] = value; 00493 this.EnableDisableControls(); 00494 } 00495 } 00499 bool Modified 00500 { 00501 get 00502 { 00503 if (this.SelectedRole != null) 00504 return this.SelectedRole.Modified; 00505 else 00506 return false; 00507 } 00508 set 00509 { 00510 if (this.SelectedRole != null) 00511 this.SelectedRole.Modified = value; 00512 00513 if (!value) 00514 { 00515 this.Session[RAIS.UI.Common.Constants.DATA_ROLES_TAG] = null; 00516 } 00517 } 00518 } 00522 protected UserData CurrentUser 00523 { 00524 get { return (UserData)this.Session[UI.Common.Constants.CURRENT_USER_TAG]; } 00525 } 00529 private string SavedDataRoleSelection 00530 { 00531 get 00532 { 00533 if (this.Session[RAIS.UI.Common.Constants.DATA_ROLE_SAVED_SELECTION_TAG] != null) 00534 return this.Session[RAIS.UI.Common.Constants.DATA_ROLE_SAVED_SELECTION_TAG].ToString(); 00535 else 00536 return string.Empty; 00537 } 00538 set 00539 { 00540 this.Session[RAIS.UI.Common.Constants.DATA_ROLE_SAVED_SELECTION_TAG] = value; 00541 } 00542 } 00543 #endregion Private helper properties 00544 } 00545 }